package cn.shengchao.examstar.rpc.distribute;

import cn.shengchao.examstar.rpc.base.TransResult;
import cn.shengchao.examstar.rpc.distribute.dto.UserInviteDto;
import cn.shengchao.examstar.rpc.distribute.req.DistributeJmsYgBatchInviteChangeReq;
import cn.shengchao.examstar.rpc.uddsys.req.DistributeUserInviteSaveDto;

import java.util.List;

/**
 * @program: examstarapi
 * @description: 分销系统用户邀请api
 * @author: Xiong weiqiang
 * @create: 2025-03-25 10:42
 */
public interface DistributeUserInviteApi {
    /**
     * 修改用户的邀请关系
     * @param userInviteDto
     * @return
     */
    TransResult<String> updateUserInviteRecord(DistributeUserInviteSaveDto userInviteDto);
    /**
     * 批量修改加盟商员工的学员的邀请关系
     * @param jmsYgBatchInviteChangeReq
     * @return
     */
    TransResult<String> batchUpdateUserInviteRecordForJmsYg(DistributeJmsYgBatchInviteChangeReq jmsYgBatchInviteChangeReq);

    /**
     * 批量查询用户的邀请记录
     * @param userIds
     * @return
     */
    List<UserInviteDto> getUserInviteRecordsForUsers(List<Long> userIds);
    /** 
     * method : getUserInviteRecord
     * description :     获取用户的邀请记录
     * @param userId \{@link Long \}
     * @return : cn.shengchao.examstar.distribute.rpc.dto.UserInviteDto
     * @author : Xiong weiqiang 
     * @CreateDate : 2025-03-25 14:48:25
     *  
     * @Reviewed : 
     * @UpdateLog :    Name    Date    Reason/Contents
     *             ---------------------------------------
     *                ****    ****    **** 
     *
     */
    UserInviteDto getUserInviteRecord(Long userId);
    /**
     * method : userInviteDistributeRecordIn
     * description :     用户受邀请成为系统用户，进行邀请信息采集
     * @param userInviteDto \{@link UserInviteDto \}
     * @author : Xiong weiqiang
     * @CreateDate : 2025-03-25 11:17:00
     *
     * @Reviewed :
     * @UpdateLog :    Name    Date    Reason/Contents
     *             ---------------------------------------
     *                ****    ****    ****
     *
     */
    void userInviteDistributeRecordIn(UserInviteDto userInviteDto);

}